package facade;

import java.util.List;

import javax.ejb.Remote;

import entities.CantidadMateriaPrima;
import entities.PedidoFabricacion;
import entities.PedidoProveedores;
import entitiesdto.ArticuloDTO;
import entitiesdto.CantidadArticuloDTO;
import entitiesdto.CantidadMateriaPrimaDTO;
import entitiesdto.EnvioCentroDistribucionDTO;
import entitiesdto.MateriaPrimaDTO;
import entitiesdto.PedidoFabricacionDTO;
import entitiesdto.PedidoProveedoresDTO;
import entitiesdto.SolicitudFabricacionDTO;
import entitiesdto.StockMateriaPrimaDTO;

@Remote
public interface SessionFacade{

	/* AdminArticulos */
	public boolean ingresarNuevoArticulo(ArticuloDTO art);
	public List<MateriaPrimaDTO> getMateriasPrimas();
	public MateriaPrimaDTO getMateriaPrimaByRef(String ref);
	
	/* AdminDistribucion */
	public List<EnvioCentroDistribucionDTO>  generarReposicionArticulos();
	public List<PedidoFabricacionDTO> getPedidosFabricacion();
	public List<PedidoProveedoresDTO> getPedidosProveedores();
	
	/* AdminFabricacion */
	public boolean crearPedidoFabricacion(SolicitudFabricacionDTO solFabr);
	public List<CantidadArticuloDTO> getArticulosSolicitados();
	public PedidoProveedoresDTO comenzarFabricacion();
	public boolean crearSolicitudFabricacion(SolicitudFabricacionDTO solFabr);
	
	/* AdminMateriaPrima */
	public List<StockMateriaPrimaDTO> recibirProvedores(List<StockMateriaPrimaDTO> actualizacionStock);
	public boolean verificarMateriasPrimas(PedidoFabricacion pf);
	public boolean actualizarStock(CantidadMateriaPrima cmp, boolean agregar);
	public boolean generarPedidoProveedores(CantidadMateriaPrima cmp);
	String getTexto(int numero);
}
